package centrecommande;

import api.Contract;

import javax.swing.*;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * User: keita
 * Date: 11/06/13
 * Time: 20:52
 * To change this template use File | Settings | File Templates.
 */
public class Requester {
    private JPanel panel1;
    private JTextField bidSize1;
    private JTextField Price1;
    private JTextField askSize1;
    private JTextField sens;
    private JTextField nameTextField;
    private JTextField askSizeTextField;
    private JTextField askSizeTextField1;
    private JTextField sensTextField;
    private JTextField sensTextField1;
    private JTextField nameTextField1;
    private JTextField nameTextField2;
    private JTextField priceTextField;
    private JTextField priceTextField1;
    private JTextField bidSizeTextField;
    private JTextField bidSizeTextField1;
    private JPanel Pane1;
    private JPanel Pane2;
    private JPanel Pane3;
    List <Contract> listeInstrument = new ArrayList<Contract>();
    int tabOrders[];
    static final String fichier = "/home/keita/init.txt";

    public int[] getTabOrders() {
        return tabOrders;
    }

    public Requester() {
        JFrame frame = new JFrame();
        frame.add(panel1);
        refreshList();
    }

    public void add(int order) {
        try {
            tabOrders[tabOrders.length+1]=order;


        }
            catch (java.lang.NullPointerException e)   {
                tabOrders = new int[1] ;
                tabOrders[0]=order;

            }catch (java.lang.ArrayIndexOutOfBoundsException e)   {
            int tempTabOrders[]=tabOrders;
            tabOrders = new int[tabOrders.length+1] ;
            for (int i = 0; i < tempTabOrders.length; i++) {
                tabOrders[i]=tempTabOrders[i];
            }
            tabOrders[tabOrders.length-1]=order;

        }
    }

    public void sendResquest() {

        for (int i = 0; i < tabOrders.length; i++) {
            Thread thread = new Thread(new Sender(this.listeInstrument,tabOrders[i])) ;
            thread.start();
        }
    }



    private boolean lireFichier (){
        //lecture du fichier texte
        try{
            InputStream ips=new FileInputStream(fichier);
            Scanner lecteur = new Scanner(ips);

            while (lecteur.hasNextLine()){
                //Si mis en commentaire je saute
                if (lecteur.hasNext("//")){
                    System.out.print("Requester.lireFichier");
                    System.out.println(" non chargé "+lecteur.nextLine());
                    continue;
                }
                 // remplissage de la liste avec le resultat
                listeInstrument.add(new Contract(lecteur.next(), lecteur.next()));
                lecteur.nextLine();

           }
            lecteur.close();
        }
        catch (java.util.NoSuchElementException e){
           return false;

        } catch (FileNotFoundException e) {
            return false;
        }
        //todo corrigé de façon a afficher le nombre d'instrument chargés
        System.out.print("Requester.lireFichier ");
        System.out.println(listeInstrument.size()+" intrument(s) chargé(s) a partir du fichier "+fichier);
        return true;
    }



    public List<Contract> getListeInstrument() {
        return listeInstrument;
    }


    public boolean refreshList() {
        return lireFichier();
    }
}
